.. _ecmCollA_SetEnv: ecmCollA_SetEnv =============== --------------- SYNOPSIS -------- .. code-block:: none t_success ecmCollA_SetEnv( t_i32 NetID, t_i32 CollAIdx, t_i32 MasterAxis, t_i32 SalveAxis, t_i32 SubOrAdd, t_i32 LessOrGreater, t_f64 Limit, t_i32 *ErrCode ) DESCRIPTION ----------- - 지정된 충돌방지 기능의 환경을 설정하는 함수입니다. 하나의 ComiECAT 마스터 장치에서는 16개까지 충돌방지 기능을 정의할 수 있습니다. PARAMETER --------- - NetID : Network 번호 - CollAIdx : 충돌방지 환경설정을 하고자하는 인덱스. 참고로, 하나의 ComiECAT 마스터 자치에서 제공하는 충돌방지의 총 개수는 16개 입니다. 따라서 이 값은 0~15 사이의 값이어야 합니다. - MasterAxis : 충돌방지 기능을 적용할 마스터축 번호 - SalveAxis : 충돌방지 기능을 적용할 슬레이브축 번호 - SubOrAdd : 충돌위치인지 아닌지를 판단하기 위해서는 두 축의 위치관계를 연산하고 그 결과값(SumPos)을 Limit 값과 비교하게 됩니다. 이 매개변수는 두 축의 위치관계를 어떻게 연산할지를 설정하는 값입니다. +--------------+---------------------------------------------------------------------------------------+ | Value | Meaning | +==============+=======================================================================================+ | 0 (subtract) | 마스터축 위치에서 슬레이브축 위치를 뺀 값을 사용한다. SumPos = MasterPos - SlavePos | +--------------+---------------------------------------------------------------------------------------+ | 1 (Add) | 마스터축 위치에서 슬레이브축 위치를 더한 값을 사용한다. SumPos = MasterPos + SlavePos | +--------------+---------------------------------------------------------------------------------------+ SubOrAdd 값을 설정할 때 일반적으로 마스터 축과 슬레이브 축의구동 방향이 서로 반대일 경우(서로 같은 부호의 방향으로 이송할 때 충돌하는 경우)에는 SubOrAdd = 1로 설정하고, 구동방향이 같은 경우(서로 다른 부호의 방향으로 이송할 때 충돌하는 경우)에는 SubOrAdd = 0으로 설정합니다. .. image:: ecmCollA_SetEnv_00.jpg - LessOrGreater : 충돌위치인지 아닌지를 판단하기 위해서 SumPos와 Limit 값을 비교하게 되는데 이때 비교하는 방식을 설정하는 매개변수 입니다. +-------------+----------------------------------------------------------------------------------------------------+ | Value | Meaning | +=============+====================================================================================================+ | 0 (Less) | SumPos < Limit의 조건을 만족하는 상황이 되면 충돌 상태로 판단하고 즉시 정지하고 에러를 처리합니다. | +-------------+----------------------------------------------------------------------------------------------------+ | 1 (Greater) | SumPos > Limit의 조건을 만족하는 상황이 되면 충돌 상태로 판단하고 즉시 정지하고 에러를 처리합니다. | +-------------+----------------------------------------------------------------------------------------------------+ LessOrGreater의 값을 설정할 때 일반적으로 마스터 축이 (+)방향으로 이송할 때 충돌하는 경우에는 LessOrGreater=1로 설정하고, 마스터축이 (-)방향으로 이송할 때 충돌하는 경우에는 LessOrGreater=0으로 설정하게 됩니다. LessOrGreater=0으로 설정하는 경우에는 대개의 시스템에서 Limit값은 음수값으로 설정하게 됩니다. - Limit : 두 축의 위치관계 연산 결과값(SumPos)의 한계치를 설정합니다. - ErrCode : 이 매개 변수를 통하여 현재의 에러 코드를 반환합니다. 단, 이 매개 변수에 NULL을 전달하면 에러 코드를 반환하지 않습니다. RETURN VALUE ------------ - 이 리턴값은 불 형(Boolean Type) 을 가지고 있습니다. +-------+--------------------------------------+ | Value | Meaning | +=======+======================================+ | 0 | 함수 수행에 실패하였음을 의미합니다. | +-------+--------------------------------------+ | 1 | 함수 수행에 성공하였음을 의미합니다. | +-------+--------------------------------------+